/**
 * 
 */

// 视图模型
Ext.define('Buisnessdict', {
			// 定义一个类role,继承自Ext.data.Model
			extend : 'Ext.data.Model',
			idProperty : 'id',
			// 定义类拥有的字段
			fields : [{
						name : 'id'
					}, {
						name : 'code'
					}, {
						name : 'name'
					}, {
						name : 'description'
					}, {
						name : 'status'
					}, {
						name : 'type'
					}, {
						name : 'typename'
					}, {
						name : 'dictionary'
					}]
		});

// 视图数据
var store = Ext.create('Ext.data.Store', {
			model : 'Buisnessdict',
			pageSize : 20,
			proxy : {
				type : 'ajax',
				url : 'busiDictAction!queryPage.action',
				reader : {
					type : 'json',
					root : 'pageList'
				}
			}
		});
// 类别数据
var typeStore = new Ext.data.JsonStore({
			proxy : {
				type : 'ajax',
				url : 'dictionaryAction!listAll.action',
				reader : {
					type : 'json',
					root : 'list'
				}
			},
			fields : ['id', 'name']
		});
typeStore.load();
var typeCombobox = Ext.create('Ext.form.ComboBox', {
			fieldLabel : '类型<font color=red>*</font>',
			emptyText : '请选择',
			labelAlign : 'left',
			labelWidth : 65,
			allowBlank : false,
			store : typeStore,
			name : 'businessdict.type',// 控件名称
			editable : false,
			displayField : 'name',
			valueField : 'id'// 实际值
		});

var comboxStore = Ext.create('Ext.data.Store', {
			fields : ['id', 'name']
		});
var data1 = [{
			"id" : "0",
			"name" : "全部"
		}]
comboxStore.load();
comboxStore.removeAll();
// comboxStore.loadData(data1, true);
var typeCombobox1 = Ext.create('Ext.form.ComboBox', {
			fieldLabel : '类型',
			emptyText : '请选择',
			store : typeStore,
			lableWidth : 50,
			name : 'typeid',// 控件名称
			displayField : 'name',
			labelAlign : 'right',
			valueField : 'id'// 实际值
		});
var ikeaForm = Ext.create('Ext.form.Panel', {
			bodyPadding : 5,
			border : 0,
			url : 'busiDictAction!saveOrUpdate.action',
			layout : 'anchor',
			autoScroll : true,
			monitorValid : true,
			bodyStyle : 'padding:5px 0px 5px 10px;border-width:0px 0px 0px 20px',
			defaults : {
				anchor : '90%',
				labelAlign : 'left',
				labelWidth : 65
			},
			itemCls : 'dateitem',
			defaultType : 'textfield',
			items : [{
						xtype : 'hiddenfield',
						name : 'businessdict.id'
					}, {
						xtype : 'hiddenfield',
						name : 'businessdict.code'
					}, {
						fieldLabel : '名称',
						name : 'businessdict.name'
					}, typeCombobox, {
						xtype : 'textarea',
						fieldLabel : '备注',
						name : 'businessdict.description'
					}]

		});

var ikeaWin = Ext.create('Ext.window.Window', {
			// title : '新增',
			autoHeight : true,
			buttonAlign : 'center',
			width : 300,
			modal : true,
			// layout : 'fit',
			closeAction : 'hide',
			closable : true,
			items : [ikeaForm],
			listeners : {
				show : function() {
					ikeaForm.getForm().reset();
				}
			},
			buttons : [{
						text : '提交',
						formBind : true,
						handler : function() {
							var form = ikeaForm.getForm();
							var id = form.findField('businessdict.id')
									.getValue();
							if (name != null) {
								form.submit({
									success : function(form, action) {
										var msg = "新增成功！";
										if (id) {
											msg = "修改成功！";
										}
										Ext.Msg.show({
													title : '提示',
													msg : msg,
													buttons : Ext.Msg.OK,
													width : 300,
													fn : function() {
														store.reload();
													}
												});
										ikeaWin.hide();
									}
										/*
										 * , failure : function(form, action) {
										 * Ext.Msg.alert('Failed', '保存失败！'); }
										 */
									});
							}
						}
					}, {
						text : '取消',
						handler : function() {
							ikeaWin.close();
						}
					}]
		});

var grid = Ext.create('Ext.grid.Panel', {

	store : store,
	border : 0,
	selModel : Ext.create('Ext.selection.CheckboxModel'),
	columns : [{
				id : 'id',
				sortable : true,
				dataIndex : 'id',
				hidden : true,
				flex : 1
			}, {
				id : 'type',
				sortable : true,
				hidden : true,
				dataIndex : 'type'
			}, {
				text : '名称',
				sortable : true,
				dataIndex : 'name',
				flex : 1
			}, {
				text : '编码',
				sortable : true,
				hidden : true,
				dataIndex : 'code',
				flex : 1
			}, {
				text : '上层名称',
				sortable : true,
				dataIndex : 'typename',
				flex : 1
			}, {
				text : '描述',
				sortable : true,
				dataIndex : 'description',
				flex : 2
			}, {
				text : '状态',
				hidden : true,
				sortable : true,
				dataIndex : 'status',
				renderer : function(v) {
					if (v == 1) {
						return '有效';
					} else if (v == 2) {
						return '无效';
					} else {
						return '-';
					}
				},
				width : 100
			}],
	stripeRows : true,

	tbar : [{
				xtype : 'button',
				text : '新增',
				iconCls : 'icon-add',
				handler : function() {
					ikeaWin.title = '新增';
					ikeaWin.show();
				}
			}, {
				xtype : 'button',
				text : '修改',
				iconCls : 'icon-edit',
				handler : function() {
					var selMode = grid.getSelectionModel();// 取得选择模式
					var model = selMode.getSelection();
					if (model.length == 1) {
						var raw = model[0].raw;
						ikeaWin.title = '修改';

						ikeaWin.show();

						ikeaForm.getForm().findField('businessdict.id')
								.setValue(raw.id);
						ikeaForm.getForm().findField('businessdict.name')
								.setValue(raw.name);
						ikeaForm.getForm()
								.findField('businessdict.description')
								.setValue(raw.description);
						ikeaForm.getForm().findField('businessdict.code')
								.setValue(raw.code);
						ikeaForm.getForm().findField('businessdict.type')
								.setValue(raw.type);
					} else {
						Ext.Msg.alert('提示', '请选择一项进行修改！');
					}
				}
			}, {
				xtype : 'button',
				text : '删除',
				iconCls : 'icon-delete',
				handler : function() {
					var selMode = grid.getSelectionModel();// 取得选择模式
					var model = selMode.getSelection();
					if (model[0]) {
						var ids = [];// 删除多个
						Ext.Array.each(model, function(item) {
									ids.push(item.raw.id);
								});
						Ext.Msg.show({
							title : '确认删除',
							buttons : Ext.MessageBox.OKCANCEL,
							msg : '确定删除所选项?',
							fn : function(btn) {
								if (btn == 'ok') {
									Ext.Ajax.request({
										url : 'busiDictAction!delete.action?ids='
												+ ids,
										success : function(response) {
											Ext.Msg.show({
														title : '提示',
														msg : '删除成功！',
														buttons : Ext.Msg.OK,
														width : 300,
														fn : function() {
															store.reload();
														}
													});
										},
										failure : function(response, opts) {
											console
													.log('server-side failure with status code '
															+ response.status);
										}
									});

								}
							}
						});
					} else {
						Ext.Msg.alert('提示', '请选择数据！');
					}
				}
			}, typeCombobox1, {
				xtype : 'button',
				text : "搜索",
				iconCls : 'icon-search',
				handler : function(data) {
					var proxy = store.getProxy();
					proxy.extraParams = {
						"typeid" : typeCombobox1.getValue()
					};
					store.reload();

				}
			}],
	bbar : Ext.create('Ext.PagingToolbar', {
				pageSize : 20,// 每页20条
				store : store,
				displayInfo : true,
				plugins : Ext.create('Ext.ux.ProgressBarPager', {})
			})

});
Ext.onReady(function() {
			store.load();
			Ext.create('Ext.container.Viewport', {
						layout : 'fit',
						items : [grid]
					});
		});
